600D/Audio
Video Memo Hook-able point ' UbbpN6mDsKg '''Confirmed HighPassFilter ' FtU-q_XwwEE HPF2 filter out function can not be strongly effected , but working. I used wave from generator. http://www.ne.jp/asahi/fa/efu/soft/wg/wg.html Download:http://www.ne.jp/asahi/fa/efu/soft/wg/down_wg.html Checked 400Hz 'Head Phone monitoring behavior ' TnS6FVkhG_c Cannon audio behavior This is my understanding (miyake_t) How to program the OKI chip to cancel in-camera audio amplification ? Chip: Oki ML26121A (see Datasheets) Audio registers 600D (Oki ML26121A) 550D (AK4646) DisableAudioIC 2100 2100 0d00 0d00 PowerMicAmp 230a 2205 2f02 SelectMic(0) SelectMic(0) 1512 1311 UnpowerMicAmp 4903 2040 1300 3000 2300 SetFilterOff SetFilterRecOff -- TurnAVLineMuteOn()= 0x4903 (audio_ic_write) 0x23C0 (audio_ic_write) 0x693E (audio_ic_write) 0x2040 (audio_ic_write) 0x2200 (audio_ic_write) TurnAVLineMuteOff= 0x5703 0x2210 0x4903 0x23C0 0x4B00 0x204C 0x3F33 timer 0x2502 0x2380 0x27A0 0x2126 msleep(0x1fe) 0x4901 R0, R0, #0x6B00 UnpowerSpeakerForWAV()= 0x4903 (audio_ic_write) 0x2220 (audio_ic_write) 0x2713 (audio_ic_write) 0x2200 (audio_ic_write) 0x2700 (audio_ic_write) msleep ORR R0, R0, #0x6B00 (wr) 0x2040 (audio_ic_write) 0x5500 (audio_ic_write) 0x3B1B (audio_ic_write) PowerSpeakerForWAV= 0x5507 0x2220 0x4903 0x23C8 0x4B00 0x2054 0x2713 0x22A0 0x271F 0x4901 ORR R0, R0, #0x6B00 SetFilterPlayOff= UnpowerSpeakerForWAV TurnAVLineMuteOn 0x1300 0x2106 msleep 0x2700 0x5700 0x2500 0x6700 0xAD00 SetFilterPlay= SetFilterOff= 0xADBD 0x3100 0x673F 0x7F00 0x8175 0x832A 0x85A1 0x8795 0x896D 0x8B08 0x8D16 0x8FBD 0x9146 0x93EA 0x959C 0x9724 0x996D 0x9B08 0x9DCA 0x9FDB 0xA100 0xA300 0xA500 0xA700 0x75D5 0x77F4 0x79F1 0x7BF0 0x7D00 0xA95A or 0xAD85 0x7F00 0x8300 0x8500 0x8700 0x8900 0x8B00 0x8D00 0x8F00 0x9100 0x9300 0x9500 0x9700 0x9900 0x9B00 0x9D00 0x9F00 0xA100 0xA300 0xA500 0xA700 0x75E7 0x77E7 0x79E7 0x7BE7 0x7DE7 0xA900 FF06A420 wav_volume_out_maybe= FF063EA8 wav_volume_out_maybe ORR R0, R0, #0x3B00 ORR R0, R4, #0x2A00 ORR R0, R5, #0x7100 ORR R0, R4, #0x6500 --- --- '''DAC (digital->analog) (550D and 600D, bcoz handled by tx19a I think) StopASIFDMADAC= 0xC05000B0 <- 0 0XC092020C <- 0 - SetASIFDACModeInterleaveINT16= 0xC0920210 <- 6 - SetASIFDACModeSingleINT16= 0xC0920210 <- R0 or 0x04 - SetASIFDACModeInterleaveUINT8= 0xC0920210 <- 3 - SetASIFDACModeSingleUINT8= 0xC0920210 <- R0 or 0x01 ADC (analog->digital) (550D and 600D) SetASIFADCModeInterleaveINT16= 0xC092011C <- 6 - SetASIFADCModeSingleINT16= 0xC092011C <- 4 - SetASIFADCModeInterleaveUINT8= 0xC092011C <- 3 - SetASIFADCModeSingleUINT8= 0xC092011C <- 1 Eventprocs SetAudioVolumeOut InitializeAudioIC DisableAudioIC StartPlayWaveData (beep) StopPlayWaveData DumpAudioIcRegister SendDataForAudioIC ReceiveDataForAudioIC Properties: 0x205000F AudioVolume (analog gain?) 0x2050017 MovieRecVolume L/R (digital gain?) Registers (from 7k0r programming guide, may be the same or may not): 01 Sampling Rate 03 PLLNL 05 PLLNH 07 PLLML 09 PLLMH 0B PLLDIV 0D Clock Enable 0F CLK Input/Output control 13 rec/play 21 reference power bits 23 input power 25 dac power 27 power management 2f powersave 33 mic input volume 39 mic boost volume 3b speaker amp volume 49 amp volume control ? 4b fader 55 speaker amp out control 69 volume control enable 6b mixer & volume 6d playback volume (digital) 67 filters enable 69 volume control enable 71 play digital volume 7f hpf2 cutoff 8* eq 9* eq a* eq b1 alc mode b3-bf alc settings c1 attack (for playback limiter) c3 decay c5 target c7 min/max gain c9 boost volume Alsa driver analyzing snd_soc_update_bits means: /** * snd_soc_update_bits - update codec register bits * @codec: audio codec * @reg: codec register * @mask: register mask * @value: new value * * Writes new register value. * * Returns 1 for change, 0 for no change, or negative error code. */ int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg, unsigned int mask, unsigned int value) *kernel.org/sound/soc/codecs/ml26124.h *kernel.org/sound/soc/codecs/ml26124.c char * const ml26124_input_select struct soc_enum ml26124_insel_enum struct snd_kcontrol_new ml26124_line_control ml26124_companding struct soc_enum ml26124_adc_companding_enum struct soc_enum ml26124_dac_companding_enum struct snd_kcontrol_new ml26124_snd_controls[] ml26124_output_mixer_controls struct snd_soc_dapm_widget ml26124_dapm_widgets[] See Register_Map See DMA